package com.yxinsur.imc.business.form;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.ToString;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 预收报表查询对象 imc_order_risk
 *
 * @author imc
 * @date 2021-05-31
 */
@Data
@ToString
public class ReportAdvanceForm
{
    private static final long serialVersionUID = 1L;

    /** 机构ID */
    @ApiModelProperty("机构ID")
    private Long orgId;

    /** 直辖团队ID */
    @ApiModelProperty("直辖团队ID")
    private Long teamId;

    /** 投保时间起 */
    @ApiModelProperty("投保时间起")
    private String applyDateStart;

    /** 投保时间止 */
    @ApiModelProperty("投保时间止")
    private String applyDateEnd;

    /** 承保时间起 */
    @ApiModelProperty("承保时间起")
    private String insureDateStart;

    /** 承保时间止 */
    @ApiModelProperty("承保时间止")
    private String insureDateEnd;

    /** 回执生效时间起 */
    @ApiModelProperty("回执生效时间起")
    private String custAckDateStart;

    /** 回执生效时间止 */
    @ApiModelProperty("回执生效时间止")
    private String custAckDateEnd;

    /** 保单号 */
    @ApiModelProperty("保单号")
    private String policyCode;

    /** 投保单号 */
    @ApiModelProperty("投保单号")
    private String proposalCode;

    /** 代理人姓名 */
    @ApiModelProperty("代理人姓名")
    private String brokerName;

    /** 代理人工号 */
    @ApiModelProperty("代理人工号")
    private String brokerCode;

    /** 供应商ID */
    @ApiModelProperty("供应商ID")
    private Long repoSupplierId;

    /** 险种状态 */
    @ApiModelProperty("险种状态")
    private String riskStatusCode;

    /** 请求类型：F */
    private String type;

    public enum Type {

        /**
         * 预收报表
         */
        ADVANCE_REPORT("A"),
        /**
         * 续期报表
         */
        RENEWAL_REPORT("R");

        private String code;

        private Type(String code) {
            this.code = code;
        }

        public String getCode() {
            return code;
        }
    }

    /**
     * 缴费期数
     */
    @ApiModelProperty("缴费期数")
    private int payNum;

    @ApiModelProperty("实缴日期起")
    private Date paymentDateStart;

    @ApiModelProperty("实缴日期止")
    private Date paymentDateEnd;

}
